import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import compressPlugin from "vite-plugin-compression";
import myPlugin from './plugins/my-plugin';
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
      vue(),
    compressPlugin({ //gzip静态资源压缩
      verbose: true,    // 默认即可
      disable: false,  //开启压缩(不禁用)，默认即可
      deleteOriginFile: false, //删除源文件
      threshold: 10240, //压缩前最小文件大小
      algorithm: 'gzip',  //压缩算法
      ext: '.gz', //文件类型
    }),
    myPlugin('post'),//每次打包 生成 动态json  再路由拦截 的地方 进行判断是否是最新的代码 做提醒使用
  ],
  base: process.env.NODE_ENV === 'production' ? './' : '/',//打包文件目录
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  server: {
    https: false, // 是否开启 https
    host: true,
    open: true,// 是否自动在浏览器打开
    port: 9997, // 端口号
    proxy: {
      '/webapi': { // 匹配请求路径，localhost:3000/snow
        // target: 'http://192.168.50.190:9080/', // 代理的目标地址 自谦
        // target: 'http://192.168.50.11:54337', // 代理的目标地址 11服务器
        target: 'http://192.168.50.12:9080', // 代理的目标地址 12服务器
        changeOrigin: true, // 开发模式，默认的origin是真实的 origin:localhost:3000 代理服务会把origin修改为目标地址
        // secure: true, // 是否https接口
        // ws: true, // 是否代理websockets
        // rewrite target目标地址 + '/abc'，如果接口是这样的，那么不用重写
        rewrite: (path) =>  path.replace(/^\/webapi/, '') // 路径重写，本项目不需要重写
      }
    }
  },
})
